/**
 * 
 */
package com.wkr.tools;

import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.multipart.MultipartFile;

import com.wkr.bean.EmpBean;

/**
 * @author 天下有雪
 *
 */
public class MyTools {
	
	public static void UploadFile(EmpBean eb, HttpServletRequest request,String uploadDerictory, String uploadFilePrefix, MultipartFile multipartFile) {
		
		String imgURL = null;
		// 判定是或否有需要处理的文件对象
		if (multipartFile != null) {
			try {
				// 检查含有文件流的part部分进行处理
				// 使用part的ContentType来区分该part是包含文件流控件还是普通控件
				// 获取 MINE类型，普通控件的改属性是 null，文件上传控件的属性不是null
				String partContent = multipartFile.getContentType();
				if (partContent != null && !partContent.equals("") && multipartFile.getSize() > 0) {
					// 处理含有文件流空间的part，进行文件上传
					// 准备文件上传的服务器的路径地址【要求是绝对地址】
					String strRealPath = request.getServletContext().getRealPath("/");
					// 规定：默认存储在 static/uploadfiles/
					String strUploadPath = strRealPath;
					// 文件上传时保存的相对路径地址
					String strRelativePath = "static/uploadfiles/" + uploadDerictory;
					// 检测文件上传目录是否已经存在，如果不存在，则创建
					File file = new File(strUploadPath + strRelativePath);
					if (!file.exists()) {
						file.mkdirs();
					}
					// 默认文件后缀为.dat
					String strFileType = ".dat";
					// 获取包含文件后缀信息的上下文的字符描述串
					String strContent = multipartFile.getOriginalFilename();
					// 正则表达式匹配文件后缀
					String strReg = "\\.\\w*";
					// 创建正则表达式类
					Pattern pattern = Pattern.compile(strReg);
					// 进行匹配操作
					Matcher matcher = pattern.matcher(strContent);
					if (matcher.find()) {
						strFileType = matcher.group(0);
					}
					// 组合一个具有随机码的文件名，防止文件重名
					String strNameFileName = uploadFilePrefix + "_" + System.currentTimeMillis() + strFileType;

					// 使用反射将文件存储的相对路径保存到实例类的属性中
					// 上传文件对象
					multipartFile.transferTo(new File(strUploadPath + strRelativePath + File.separatorChar + strNameFileName));
					imgURL = strRelativePath + File.separatorChar + strNameFileName;
				} 
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		eb.setEmpImg(imgURL);
	}
	
	

}
	

